/**
 * 
 */
package sqs.dataaccess.hibernate;

import java.util.List;

import org.hibernate.Query;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import sqs.dataaccess.QuestionnaireDao;
import sqs.model.Questionnaire;
import sqs.model.User;

/**
 * @author kjleng
 *
 */
public class HibernateQuestionnaireDao extends HibernateDaoSupport implements QuestionnaireDao {

	public void createQuestionnaire(Questionnaire questionnaire)
			throws DataAccessException {
		getHibernateTemplate().save(questionnaire);
	}
	
	public void updateQuestionnaire(Questionnaire questionnaire)
			throws DataAccessException {
		getHibernateTemplate().update(questionnaire);
	}

	public Questionnaire getQuestionnaireByQuestionnaireId(int questionnaireId)
			throws DataAccessException {
		Query query = getSession().createQuery("from Questionnaire q where q.questionnaireId=?");
		query.setParameter(0, questionnaireId);
		return (Questionnaire)query.uniqueResult();
	}

	public List<Questionnaire> getAllQuestionnaires() throws DataAccessException{
		Query query = getSession().createQuery("from Questionnaire q");
		return query.list();
	}
	
	public List<Questionnaire> getQuestionnairesByOwner(User user)throws DataAccessException{
		Query query = getSession().createQuery("from Questionnaire q where q.owner=?");
		query.setParameter(0, user.getUsername());
		return query.list();
	}
	
}
